{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b43a5c86",
   "metadata": {},
   "source": [
    "**<font size =6>报告一 —— 交通事故理赔审核预测</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "63a39f87",
   "metadata": {},
   "source": [
    "**<font size=5>问题背景与要求：</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6155f8a6",
   "metadata": {},
   "source": [
    "<font size=4>在交通摩擦（事故）发生后，理赔员会前往现场勘察、采集信息，这些信息往往影响着车主是否能够得到保险公司的理赔。训练集数据包括理赔人员在现场对该事故方采集的36条信息，信息已经被编码，以及该事故方最终是否获得理赔。我们的任务是根据这36条信息预测该事故方没有被理赔的概率。</font>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "faad0e2a",
   "metadata": {},
   "source": [
    "**<font size=5>数据处理与初步分析：</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "435790dd",
   "metadata": {},
   "source": [
    "<font size=4>这个问题是一个二分类问题，信息已经被翻译为数字，如下图所示</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "dee47552",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(200000, 38)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CaseId</th>\n",
       "      <th>Q1</th>\n",
       "      <th>Q2</th>\n",
       "      <th>Q3</th>\n",
       "      <th>Q4</th>\n",
       "      <th>Q5</th>\n",
       "      <th>Q6</th>\n",
       "      <th>Q7</th>\n",
       "      <th>Q8</th>\n",
       "      <th>Q9</th>\n",
       "      <th>...</th>\n",
       "      <th>Q28</th>\n",
       "      <th>Q29</th>\n",
       "      <th>Q30</th>\n",
       "      <th>Q31</th>\n",
       "      <th>Q32</th>\n",
       "      <th>Q33</th>\n",
       "      <th>Q34</th>\n",
       "      <th>Q35</th>\n",
       "      <th>Q36</th>\n",
       "      <th>Evaluation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199995</th>\n",
       "      <td>199996</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>35</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199996</th>\n",
       "      <td>199997</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199997</th>\n",
       "      <td>199998</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199998</th>\n",
       "      <td>199999</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199999</th>\n",
       "      <td>200000</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200000 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        CaseId  Q1  Q2  Q3  Q4  Q5  Q6  Q7  Q8  Q9  ...  Q28  Q29  Q30  Q31  \\\n",
       "0            1   0   0   0   0   0   0   0   0   0  ...    0    0    0    0   \n",
       "1            2   0   0   0   0   0   0   0   0   0  ...    0    1    1    1   \n",
       "2            3   0   0   0   0   0   0   0   1   0  ...    1    2    2    2   \n",
       "3            4   0   0   0   0   0   0   0   0   0  ...    1    3    2    3   \n",
       "4            5   0   0   0   0   0   0   0   0   0  ...    1    4    2    4   \n",
       "...        ...  ..  ..  ..  ..  ..  ..  ..  ..  ..  ...  ...  ...  ...  ...   \n",
       "199995  199996   0   1   0   0   0   0   0   0   0  ...    1    3    2   35   \n",
       "199996  199997   0   0   0   0   0   0   0   0   0  ...    0    3    1   37   \n",
       "199997  199998   0   0   0   0   0   0   0   0   0  ...    0    8    1    3   \n",
       "199998  199999   0   0   0   0   0   0   0   0   0  ...    0   11    1    1   \n",
       "199999  200000   0   0   0   0   0   3   0   0   0  ...    0    2    1   21   \n",
       "\n",
       "        Q32  Q33  Q34  Q35  Q36  Evaluation  \n",
       "0         0    0    0    0    0           0  \n",
       "1         1    0    0    0    0           0  \n",
       "2         1    0    0    0    0           0  \n",
       "3         1    0    0    1    1           0  \n",
       "4         1    0    0    1    1           0  \n",
       "...     ...  ...  ...  ...  ...         ...  \n",
       "199995    1    0    0    1    1           0  \n",
       "199996    1    0    0    1    1           0  \n",
       "199997    1    0    0    1    1           0  \n",
       "199998    1    0    0    1    1           0  \n",
       "199999    1    0    0    0    0           0  \n",
       "\n",
       "[200000 rows x 38 columns]"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "data_original=pd.read_csv('report1_train.csv')\n",
    "print(data_original.shape)\n",
    "data_original"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "820617c5",
   "metadata": {},
   "source": [
    "<font size=4>可以看到原始数据共有200000个，其中CaseId为案例序号，Q1—Q36为问题的信息，已被编码为数字，Evaluation为每个案例最终审核结果，其中0代表授予理赔，1代表不授予理赔。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1f6cac51",
   "metadata": {},
   "source": [
    "<font size=4>检查原始数据是否有缺项</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "74e12d80",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CaseId</th>\n",
       "      <th>Q1</th>\n",
       "      <th>Q2</th>\n",
       "      <th>Q3</th>\n",
       "      <th>Q4</th>\n",
       "      <th>Q5</th>\n",
       "      <th>Q6</th>\n",
       "      <th>Q7</th>\n",
       "      <th>Q8</th>\n",
       "      <th>Q9</th>\n",
       "      <th>...</th>\n",
       "      <th>Q28</th>\n",
       "      <th>Q29</th>\n",
       "      <th>Q30</th>\n",
       "      <th>Q31</th>\n",
       "      <th>Q32</th>\n",
       "      <th>Q33</th>\n",
       "      <th>Q34</th>\n",
       "      <th>Q35</th>\n",
       "      <th>Q36</th>\n",
       "      <th>Evaluation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.00000</td>\n",
       "      <td>200000.000000</td>\n",
       "      <td>200000.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>100000.500000</td>\n",
       "      <td>0.016445</td>\n",
       "      <td>0.010875</td>\n",
       "      <td>0.024925</td>\n",
       "      <td>0.038560</td>\n",
       "      <td>0.039130</td>\n",
       "      <td>0.080335</td>\n",
       "      <td>0.113725</td>\n",
       "      <td>0.294165</td>\n",
       "      <td>0.038810</td>\n",
       "      <td>...</td>\n",
       "      <td>0.611760</td>\n",
       "      <td>4.034760</td>\n",
       "      <td>1.163025</td>\n",
       "      <td>9.428990</td>\n",
       "      <td>0.979740</td>\n",
       "      <td>0.032945</td>\n",
       "      <td>0.005520</td>\n",
       "      <td>0.64946</td>\n",
       "      <td>0.657345</td>\n",
       "      <td>0.158005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>57735.171256</td>\n",
       "      <td>0.182496</td>\n",
       "      <td>0.141269</td>\n",
       "      <td>0.213645</td>\n",
       "      <td>0.263483</td>\n",
       "      <td>0.301528</td>\n",
       "      <td>0.508923</td>\n",
       "      <td>0.589884</td>\n",
       "      <td>0.916137</td>\n",
       "      <td>0.267851</td>\n",
       "      <td>...</td>\n",
       "      <td>0.984868</td>\n",
       "      <td>3.815101</td>\n",
       "      <td>0.616417</td>\n",
       "      <td>9.004402</td>\n",
       "      <td>0.238725</td>\n",
       "      <td>0.802953</td>\n",
       "      <td>0.074092</td>\n",
       "      <td>0.47714</td>\n",
       "      <td>0.474598</td>\n",
       "      <td>0.364747</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>50000.750000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>100000.500000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>150000.250000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>14.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>200000.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>8.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>52.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>42.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>38.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.00000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>8 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "              CaseId             Q1             Q2             Q3  \\\n",
       "count  200000.000000  200000.000000  200000.000000  200000.000000   \n",
       "mean   100000.500000       0.016445       0.010875       0.024925   \n",
       "std     57735.171256       0.182496       0.141269       0.213645   \n",
       "min         1.000000       0.000000       0.000000       0.000000   \n",
       "25%     50000.750000       0.000000       0.000000       0.000000   \n",
       "50%    100000.500000       0.000000       0.000000       0.000000   \n",
       "75%    150000.250000       0.000000       0.000000       0.000000   \n",
       "max    200000.000000       3.000000       3.000000       3.000000   \n",
       "\n",
       "                  Q4             Q5             Q6             Q7  \\\n",
       "count  200000.000000  200000.000000  200000.000000  200000.000000   \n",
       "mean        0.038560       0.039130       0.080335       0.113725   \n",
       "std         0.263483       0.301528       0.508923       0.589884   \n",
       "min         0.000000       0.000000       0.000000       0.000000   \n",
       "25%         0.000000       0.000000       0.000000       0.000000   \n",
       "50%         0.000000       0.000000       0.000000       0.000000   \n",
       "75%         0.000000       0.000000       0.000000       0.000000   \n",
       "max         3.000000       3.000000       6.000000       6.000000   \n",
       "\n",
       "                  Q8             Q9  ...            Q28            Q29  \\\n",
       "count  200000.000000  200000.000000  ...  200000.000000  200000.000000   \n",
       "mean        0.294165       0.038810  ...       0.611760       4.034760   \n",
       "std         0.916137       0.267851  ...       0.984868       3.815101   \n",
       "min         0.000000       0.000000  ...       0.000000       0.000000   \n",
       "25%         0.000000       0.000000  ...       0.000000       2.000000   \n",
       "50%         0.000000       0.000000  ...       0.000000       3.000000   \n",
       "75%         0.000000       0.000000  ...       1.000000       5.000000   \n",
       "max         8.000000       4.000000  ...       4.000000      52.000000   \n",
       "\n",
       "                 Q30            Q31            Q32            Q33  \\\n",
       "count  200000.000000  200000.000000  200000.000000  200000.000000   \n",
       "mean        1.163025       9.428990       0.979740       0.032945   \n",
       "std         0.616417       9.004402       0.238725       0.802953   \n",
       "min         0.000000       0.000000       0.000000       0.000000   \n",
       "25%         1.000000       2.000000       1.000000       0.000000   \n",
       "50%         1.000000       6.000000       1.000000       0.000000   \n",
       "75%         1.000000      14.000000       1.000000       0.000000   \n",
       "max         3.000000      42.000000       3.000000      38.000000   \n",
       "\n",
       "                 Q34           Q35            Q36     Evaluation  \n",
       "count  200000.000000  200000.00000  200000.000000  200000.000000  \n",
       "mean        0.005520       0.64946       0.657345       0.158005  \n",
       "std         0.074092       0.47714       0.474598       0.364747  \n",
       "min         0.000000       0.00000       0.000000       0.000000  \n",
       "25%         0.000000       0.00000       0.000000       0.000000  \n",
       "50%         0.000000       1.00000       1.000000       0.000000  \n",
       "75%         0.000000       1.00000       1.000000       0.000000  \n",
       "max         1.000000       1.00000       1.000000       1.000000  \n",
       "\n",
       "[8 rows x 38 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_original.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3e0cd772",
   "metadata": {},
   "source": [
    "<font size=4>可以看到没有缺项，所以无需进行添补。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8da11034",
   "metadata": {},
   "source": [
    "<font size=4>将需要处理的数据提取出来：</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5a41875b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0         0\n",
       "1         0\n",
       "2         0\n",
       "3         0\n",
       "4         0\n",
       "         ..\n",
       "199995    0\n",
       "199996    0\n",
       "199997    0\n",
       "199998    0\n",
       "199999    0\n",
       "Name: Evaluation, Length: 200000, dtype: int64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Train_Y=data_original['Evaluation']\n",
    "Train_Y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "68f9f2cb",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Q1</th>\n",
       "      <th>Q2</th>\n",
       "      <th>Q3</th>\n",
       "      <th>Q4</th>\n",
       "      <th>Q5</th>\n",
       "      <th>Q6</th>\n",
       "      <th>Q7</th>\n",
       "      <th>Q8</th>\n",
       "      <th>Q9</th>\n",
       "      <th>Q10</th>\n",
       "      <th>...</th>\n",
       "      <th>Q27</th>\n",
       "      <th>Q28</th>\n",
       "      <th>Q29</th>\n",
       "      <th>Q30</th>\n",
       "      <th>Q31</th>\n",
       "      <th>Q32</th>\n",
       "      <th>Q33</th>\n",
       "      <th>Q34</th>\n",
       "      <th>Q35</th>\n",
       "      <th>Q36</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199995</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>35</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199996</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199997</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199998</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>199999</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>200000 rows × 36 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Q1  Q2  Q3  Q4  Q5  Q6  Q7  Q8  Q9  Q10  ...  Q27  Q28  Q29  Q30  Q31  \\\n",
       "0        0   0   0   0   0   0   0   0   0    0  ...    0    0    0    0    0   \n",
       "1        0   0   0   0   0   0   0   0   0    0  ...    0    0    1    1    1   \n",
       "2        0   0   0   0   0   0   0   1   0    0  ...    0    1    2    2    2   \n",
       "3        0   0   0   0   0   0   0   0   0    0  ...    0    1    3    2    3   \n",
       "4        0   0   0   0   0   0   0   0   0    0  ...    0    1    4    2    4   \n",
       "...     ..  ..  ..  ..  ..  ..  ..  ..  ..  ...  ...  ...  ...  ...  ...  ...   \n",
       "199995   0   1   0   0   0   0   0   0   0    0  ...    0    1    3    2   35   \n",
       "199996   0   0   0   0   0   0   0   0   0    0  ...    0    0    3    1   37   \n",
       "199997   0   0   0   0   0   0   0   0   0    0  ...    0    0    8    1    3   \n",
       "199998   0   0   0   0   0   0   0   0   0    0  ...    0    0   11    1    1   \n",
       "199999   0   0   0   0   0   3   0   0   0    0  ...    0    0    2    1   21   \n",
       "\n",
       "        Q32  Q33  Q34  Q35  Q36  \n",
       "0         0    0    0    0    0  \n",
       "1         1    0    0    0    0  \n",
       "2         1    0    0    0    0  \n",
       "3         1    0    0    1    1  \n",
       "4         1    0    0    1    1  \n",
       "...     ...  ...  ...  ...  ...  \n",
       "199995    1    0    0    1    1  \n",
       "199996    1    0    0    1    1  \n",
       "199997    1    0    0    1    1  \n",
       "199998    1    0    0    1    1  \n",
       "199999    1    0    0    0    0  \n",
       "\n",
       "[200000 rows x 36 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Train_X=data_original.drop(data_original.columns[[0,37]],axis=1)\n",
    "Train_X"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "44cfe828",
   "metadata": {},
   "source": [
    "<font size=4>对训练数据集进行划分，分为训练组和测试组，用来检测模型的准确性。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2db2f2d8",
   "metadata": {},
   "outputs": [],
   "source": [
    "#因为竞赛网站登不上，所以选取前150000个作为训练集，后50000个作为测试集\n",
    "Train_X_train=Train_X.loc[0:150000]\n",
    "Train_Y_train=Train_Y.loc[0:150000]\n",
    "Train_X_test=Train_X.loc[150001:199999]\n",
    "Train_Y_test=Train_Y.loc[150001:199999]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "be0edb92",
   "metadata": {},
   "source": [
    "**<font size=4>分类器的选择：</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8dc1796c",
   "metadata": {},
   "source": [
    "<font size=4>先将本次要用到的库全部添加进来。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "95de37c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import classification_report, confusion_matrix\n",
    "from sklearn.metrics import roc_auc_score\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.neural_network import MLPClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "import time\n",
    "from sklearn.model_selection import cross_val_score"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ee12daee",
   "metadata": {},
   "source": [
    "<font size=4>定义一个显示准确度的函数，在每次训练完模型后显示不同的模型的准确度的差异。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "ede8aaca",
   "metadata": {},
   "outputs": [],
   "source": [
    "def show_accuracy(Train_Y_test, Train_Y_pred):#将模型预测值与实际值传入函数\n",
    "    print('roc_auc:  ',roc_auc_score(Train_Y_test, Train_Y_pred))#对结果进行roc_auc评分而不是acc评分\n",
    "    cm = confusion_matrix(Train_Y_test,Train_Y_pred)#生成混淆矩阵\n",
    "    plt.matshow(cm)\n",
    "    plt.title(u'Confusion Matrix')\n",
    "    plt.colorbar()\n",
    "    plt.ylabel(u'Groundtruth')\n",
    "    plt.xlabel(u'Predict')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65d37e96",
   "metadata": {},
   "source": [
    "<font size=4>首先尝试sklearn库的线性回归函数LogisticRegression。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "9a2d5ae7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.6983706557818802\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Python\\Lib\\site-packages\\sklearn\\linear_model\\_logistic.py:763: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  n_iter_i = _check_optimize_result(\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = LogisticRegression(random_state=0)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "42d63706",
   "metadata": {},
   "source": [
    "<font size=4>对LogisticRegression函数的参数进行调增以达到更高的正确率   \n",
    "主要参数有：  \n",
    "1、正则化参数：penalty={'l1','l2','elasticnet','none'}, default='l2'  \n",
    "&#160;&#160;&#160;这一项需要结合“损失函数优化器solver”来选择。<br>\n",
    "2、损失函数优化器：solver={'liblinear','lbfgs','sag','newton-cg','saga'}, default='lbfgs'<br>\n",
    "&#160;&#160;&#160;liblinear：使用了开源的liblinear库实现，内部使用了坐标轴下降法来迭代优化损失函数，<mark style=background-color:yellow>适用于小数据集</mark>。  <br>\n",
    "&#160;&#160;&#160;lbfgs：拟牛顿法的一种，利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数，<mark style=background-color:yellow>只能用于L2正则化</mark>。<br>\n",
    "&#160;&#160;&#160;newton-cg：也是牛顿法家族的一种，利用损失函数二阶导数矩阵即海森矩阵来迭代优化损失函数，<mark style=background-color:yellow>只能用于L2正则化</mark>。<br>\n",
    "&#160;&#160;&#160;sag：即随机平均梯度下降，是梯度下降法的变种，和普通梯度下降法的区别是每次迭代仅仅用一部分的样本来计算梯度，<mark style=background-color:yellow>适合于样本数据多的时候</mark>，sag是一种线性收敛算法，这个速度远比梯度下降法快，<mark style=background-color:yellow>只能用于L2正则化</mark>。<br>\n",
    "&#160;&#160;&#160;saga：快速梯度下降法，线性收敛的随机优化算法的的变种，<mark style=background-color:yellow>适用于样本量非常大的数据集</mark>。<br>\n",
    "    <br>\n",
    "因为训练数据集有150000个数据，属于样本量非常大的数据集，因此选择sag和saga。<br><br>\n",
    "3、分类方式选择参数：multi_class={'auto','ovr','multinomial'},default='auto'<br>\n",
    "&#160;&#160;&#160;'ovr' – 'OvR'，将多分类问题看成是二分类问题，每次只将一类样本与其他类样本组成的集合进行训练，进行 nc 次训练以后就可以完成多分类问题的处理了。<br>\n",
    "&#160;&#160;&#160;'multinomial' – 'MvM'，liblinear 不能选择该项，以单循环的方式进行分类，每次处理两个分类，保证样本中所有分类两两组合进行过一次训练，共需 $\\frac{nc×(nc-1)}{2}$次训练，分类速度慢，但分类结果更准确。<br>\n",
    "&#160;&#160;&#160;'auto' – 如果 resolver 是 liblinear 则选择 OvR，否则选择 MvM。<br><br>\n",
    "  因为我们选择sag和saga损失函数优化器，所以我们选择multinomial。<br><br>\n",
    "4、类型权重参数：class_weight={dict or 'balanced'}, default=None<br>\n",
    "&#160;&#160;&#160;dict – 通过 dict 定义分类权重：{class_label: weight}。<br>\n",
    "&#160;&#160;&#160;balanced – 类库会根据训练样本量来计算权重。某种类型样本量越多，则权重越低，样本量越少，则权重越高。<br>\n",
    "&#160;&#160;&#160;None – 默认值，不指定权重。<br><br>\n",
    "因为Evaluation中判定为1的样本只有31601个，相对较少，因此需要考虑权重的影响，我们选择balanced和None。<br>\n",
    "其他参数对结果影响不大。<br>\n",
    "因此我们选择对penalty、solver、class_weight参数进行调整来提高准确度。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1088525f",
   "metadata": {},
   "source": [
    "<font size=4>针对机器学习超参数的调整，可以使用GridSearchCV网格搜索。<br>\n",
    "GridSearchCV有以下主要参数：<br>\n",
    "1、estimator，选择使用的分类器。<br>\n",
    "2、param_grid，需要最优化的参数的取值，格式为字典或者列表。<br>\n",
    "3、scoring，模型评价标准，有‘roc_auc’、‘neg_log_loss’等。<br>\n",
    "4、n_jobs，cpu，并行数，1为只是用一个处理器，-1为使用所有处理器。<br>\n",
    "5、cv，交叉验证参数，即每一组参数计算几遍。<br></font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d89303df",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'class_weight': 'balanced',\n",
       " 'max_iter': 500,\n",
       " 'multi_class': 'multinomial',\n",
       " 'n_jobs': -1,\n",
       " 'penalty': 'l1',\n",
       " 'random_state': 0,\n",
       " 'solver': 'saga'}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "param_grid = [\n",
    "{'penalty':['l2'],'solver': ['sag','saga'], 'multi_class': ['multinomial'],'class_weight':['balanced',None],'max_iter':[500],'n_jobs':[-1],'random_state':[0]},\n",
    "{'penalty':['l1'],'solver':[ 'saga'], 'multi_class': ['multinomial'],'class_weight':['balanced',None],'max_iter':[500],'n_jobs':[-1],'random_state':[0]},\n",
    "]\n",
    "clf_test=LogisticRegression()\n",
    "grid_search = GridSearchCV(clf_test, param_grid,scoring='roc_auc',n_jobs=-1,cv=4)#使用所有处理器以缩短运行时间                \n",
    "grid_search.fit(Train_X, Train_Y)\n",
    "grid_search.best_params_#获得最佳的模型参数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c48400df",
   "metadata": {},
   "source": [
    "<font size=4>将以上得到的最佳参数代入LogisticRegression。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d7f4e46c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8321720523213835\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = LogisticRegression(penalty='l1',max_iter=500,solver='saga',multi_class='multinomial',class_weight='balanced',n_jobs=-1,random_state=0)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa173d6d",
   "metadata": {},
   "source": [
    "<font size=4>可以看到准确率有明显提升。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a953932",
   "metadata": {},
   "source": [
    "<font size=4>然后尝试sklearn库中的MLPClassifier多层感知器分类器，它本质上是一种神经网络。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4eb110de",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8334241224688506\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = MLPClassifier(random_state=0)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13508a5f",
   "metadata": {},
   "source": [
    "<font size=4>MLPClassifier有以下主要参数：<br>\n",
    "1、hidden_layer_sizes：表示隐藏层的神经元数量，默认为100<br>\n",
    "2、activation={'identity'，'logistic'，'tanh'，'relu'}：隐藏层激活函数的类型，默认为relu。'identity'：无操作激活，对实现线性瓶颈很有用，返回$f(x)=x$；'ogistic'：logistic sigmoid函数，返回$f(x)=\\frac{1}{1+e^-x}$；'tanh'：双曲tan函数，返回$f(x)=tanh(x)$；'relu'：整流后的线性单位函数，返回$f(x)=max(0,x)$。<br>\n",
    "3、solver={'lbfgs'，'sgd'，'adam'}，默认'adam'。'lbfgs'是准牛顿方法族的优化器；'sgd’指的是随机梯度下降；'adam'是基于随机梯度的优化器，其中adam在大量较大的数据集下有很好的效果。<br>\n",
    "4、batch_size，用于随机优化器的minibatch的大小，默认'auto'，即$batch\\underline\\ size = min(200，n\\underline\\ samples)$。<br>\n",
    "5、max_iter，最大迭代次数，solver迭代直到收敛（由'tol'确定）或这个迭代次数，默认为200。<br>\n",
    "6、learning_rate={'constant'，'invscaling'，'adaptive'}，用于权重更新，默认为'adaptive'，仅在solver ='sgd'时使用。<br>\n",
    "因为MLPClassifier参数较多，且样本数据集非常大，如果同时将这些参数放入GridSearchCV网格搜索中进行运算，运算时间很长，因此我们根据网上给出的经验和参考先确定一些参数。<br>\n",
    "因为样本数据集非常大，所以solver优化器选择adam，因此参数中许多只在'sgd'模式下可用的参数可以忽略;batch_size过大或过小都会影响收敛的准确度和速度，所以batch_size选择'auto'，由函数自己选择合适的batch_size；max_iter若不产生警告，则不会对结果产生影响，所以在程序中只要使max_iter超过一定值即可。所以要测试的参数有activation和hidden_layer_sizes。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "653c1af0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 4 folds for each of 4 candidates, totalling 16 fits\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "{'activation': 'tanh',\n",
       " 'batch_size': 'auto',\n",
       " 'hidden_layer_sizes': (100,),\n",
       " 'random_state': 0,\n",
       " 'solver': 'adam'}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "param_grid = [\n",
    "{'hidden_layer_sizes':[(80,),(100,),(120,),(140)],'solver': ['adam'],'activation':['tanh'],'batch_size':['auto'],'random_state':[0]},\n",
    "]\n",
    "clf_test=MLPClassifier()\n",
    "grid_search = GridSearchCV(clf_test, param_grid,scoring='roc_auc',n_jobs = -1,verbose=3,cv=4)                \n",
    "grid_search.fit(Train_X, Train_Y)\n",
    "grid_search.best_params_"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c4de0126",
   "metadata": {},
   "source": [
    "<font size=4>将以上得到的最佳参数代入MLPClassifier。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "beb168cf",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.867942673643145\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf = MLPClassifier(solver='adam',activation='tanh',random_state=0,hidden_layer_sizes=(100,),batch_size='auto')\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d10a89a4",
   "metadata": {},
   "source": [
    "<font size=4>可以看到调参后的模型正确率有所提升，且比LogisticRegression效果好。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "067109a7",
   "metadata": {},
   "source": [
    "<font size=4>最后我们尝试竞赛网站上给出的标杆模型RandomForestClassifier随机森林模型。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "12f22799",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8409157082708311\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time: 13.814250469207764\n"
     ]
    }
   ],
   "source": [
    "#引入time模块，比较参数对模型训练所需时间的影响\n",
    "time_start = time.time()#开始计时\n",
    "\n",
    "clf = RandomForestClassifier(random_state=0,n_estimators=100)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)\n",
    "\n",
    "time_end = time.time()#结束计时\n",
    "time_sum = time_end - time_start  # 计算的时间差为程序的执行时间，单位为秒\n",
    "print('time:',time_sum)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1371c59c",
   "metadata": {},
   "source": [
    "<font size=4>RandomForestClassifier随机森林模型有以下主要参数会影响结果的准确性：<br>\n",
    "1、n_estimators，决策树个数，较多的子树可以让模型有更好的性能，但会使程序运行时间变长。<br>\n",
    "2、max_depth，决策树最大深度，决策树在建立子树的时候会限制子树的深度。<br>\n",
    "3、min_samples_leaf，叶子节点最少样本数，这个值限制了叶子节点最少的样本数，如果某叶子节点数目小于样本数，则会和兄弟节点一起被剪枝。<br>\n",
    "4、min_samples_split，部节点再划分所需最小样本数，这个值限制了子树继续划分的条件，如果某节点的样本数少于min_samples_split，则不会继续再尝试选择最优特征来进行划分。<br>\n",
    "5、 max_features，随机森林允许单个决策树使用特征的最大数量。<br>\n",
    "以上几个参数会不同程度地影响结果的准确性，但因为参数过多，样本数据集又太大，所以我们对参数一个一个进行网格搜索调整。<br></font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b451ffcd",
   "metadata": {},
   "source": [
    "<font size=4>根据网上的参考，n_estimators越大，结果越准确，但运行时间也会更长，所以需要选择一个合适的n_estimators。我们采用cross_val_score交叉验证评分来选出合适的n_estimators。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b8b81125",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9254850154849422 111\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scorel = []\n",
    "for i in range(0,200,10):\n",
    "    rfc = RandomForestClassifier(n_estimators=i+1,\n",
    "                                 n_jobs=-1,\n",
    "                                 random_state=0)\n",
    "    score = cross_val_score(rfc,Train_X, Train_Y,cv=6,n_jobs=-1).mean()#交叉验证评分\n",
    "    scorel.append(score)\n",
    "print(max(scorel),(scorel.index(max(scorel))*10)+1)#打印出准确度最大的参数\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(1,201,10),scorel)#画出不同参数下的评分\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5db3f80c",
   "metadata": {},
   "source": [
    "<font size=4>可以看到在n_estimators=110附近时准确度最大，所以我们选择在n_estimators=110附近再次使用cross_val_score来获得更精确的n_estimators。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "0a95cb88",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9255050150849501 110\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scorel = []\n",
    "for i in range(105,115,1):\n",
    "    rfc = RandomForestClassifier(n_estimators=i+1,\n",
    "                                 n_jobs=-1,\n",
    "                                 random_state=0)\n",
    "    score = cross_val_score(rfc,Train_X, Train_Y,cv=6,n_jobs=-1).mean()#交叉验证评分\n",
    "    scorel.append(score)\n",
    "print(max(scorel),(scorel.index(max(scorel)))+106)#打印出准确度最大的参数\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(106,116,1),scorel)#画出不同参数下的评分\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef51f41a",
   "metadata": {},
   "source": [
    "<font size=4>将n_estimators=110代入RandomForestClassifier中。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "bee48802",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8409513690653536\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time: 15.552931547164917\n"
     ]
    }
   ],
   "source": [
    "time_start = time.time()#开始计时\n",
    "\n",
    "clf = RandomForestClassifier(random_state=0,n_estimators=110)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)\n",
    "\n",
    "time_end = time.time()#结束计时\n",
    "time_sum = time_end - time_start  # 计算的时间差为程序的执行时间，单位为秒\n",
    "print('time:',time_sum)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a15ad6d3",
   "metadata": {},
   "source": [
    "<font size=4>可以看到准确度有少许提升，但是不明显，我们接下来对max_depth进行调整。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "e28387c4",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9256300068850573 25\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABI4AAAEwCAYAAADRkzo7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA4gklEQVR4nO3deXycdbn///c1k5mk2dM0aUuTLtDSUqBNNJTtyKYouCGLtBw3EET9ilQ4KCAePHJE3Fk8Hv1xFBUXWhYLCAhHAUWPqBSS7nQFmnRN2yxt0mwzn98fcyeZpJN22iS9M5nX8/HII/eea8rdm/bd6/O5zTknAAAAAAAAoL+A3wUAAAAAAABgZCI4AgAAAAAAQEIERwAAAAAAAEiI4AgAAAAAAAAJERwBAAAAAAAgIYIjAAAAAAAAJJRUcGRmF5jZWjPbYGa3JNg/xcyeN7PlZvYnMyvztleY2ctmtsrbNz/uHDOzO81snZmtMbPrh+5jAQAAAAAAYLDMOXfwA8yCktZJOl9SnaRXJF3hnFsdd8wjkp5yzv3CzM6TdJVz7mNmdrwk55xbb2bHSHpV0gnOuUYzu0rSuZKudM5FzazUObfzYLWMGzfOTZ069cg/LQAAAAAAAPp49dVXdznnShLty0ji/HmSNjjnNkmSmS2SdJGk1XHHzJZ0o7f8oqTHJck5t677AOfcVjPbKalEUqOkz0r6V+dc1Nt/0NBIkqZOnaqlS5cmUTIAAAAAAACSYWZvDbQvmaFqkyTVxq3XedviLZN0ibd8saQ8MyvuV8Q8SWFJG71Nx0mab2ZLzez3ZjYjiVoAAAAAAABwlAzV5Ng3STrbzKolnS1pi6RI904zmyjpl4oNYYt6mzMltTnnqiT9j6QHEl3YzK71wqWl9fX1Q1QuAAAAAAAADiWZ4GiLpPK49TJvWw/n3Fbn3CXOuUpJt3nbGiXJzPIlPS3pNufc3+NOq5P0W295iaQ5iX64c+5+51yVc66qpCThcDsAAAAAAAAMg2SCo1ckzTCzaWYWlrRA0pPxB5jZODPrvtat8rqHvOOXSHrQOfdov+s+rtjk2FKsS2mdAAAAAAAAMGIcMjhyznVJuk7Sc5LWSHrYObfKzO4wsw96h50jaa2ZrZM0XtKd3vbLJZ0l6Uozq/G+Krx935R0qZmtkHSXpGuG6DMBAAAAAABgCJhzzu8aklZVVeV4qxoAAAAAAMDQMbNXvTmoDzBUk2MDAAAAAABglCE4AgAAAAAAQEIERwAAAAAAAEgow+8CAADAyNfWGVH93nbt3Nuu+r1tam7rUn5WSEXZIRXlhFWUHVZhdkihIP8mBQAAMJoQHAEAkKaiUafG/Z1eINQWFwz1BkTdy3vbupK6Zl5mhgpzQhqbHVZhdlhF2SEVZoc1Nqd3uSg7rKKcUOx7dlhjwsFh/qQAAAA4UgRHAACMMt3dQfX72rWzOfa9vl8QVL+3Xbv2taszcuDbVXPCQZXkZao0L0uzJuTrHTMyVZKX6W2Lfc/PCqlpf6caWzvV0NqhxtYO7WnpXW7wtm/atU+NLZ3a2z5w8JSZEfDCpFi41N29NDanN3yK31+YHVZ+VobMbDh/GQEAACCCIwAAUoJzTo2tnXFhUFvse7+AaGdzbBhZf2ZScU5v8DNzfF5cEJTVJxTKyUzujwflh1F/R1dUjfs7YkFTSyxYamzt0J7WvtsaWju0ZnuzGr390QNzLUlSMGBxHUxeV1N2WIU9nUwHdjoVjgkpg6F0AACMes45RaJOXd1fkaj33akrGvW+912ORKPqjMTO64z0PSa27cBj8rNCuvyUw/kTUWoiOAIAwEftXV53UJ8hYr3fu7uE6gfoDhoTCqo0P1MluZk6fnyuzjyuWKX5WSrJzVSJt700L1Njc8K+hibhjIBK87JUmpeV9DnRqFNzW2dPoNTY2qEGr6upoTUufGrpUO2eVi2va1RDa6c6uqIDXjM/K0NFcZ1MfYbU5cTCp55AyguhskIMpQNGgmjUaX9nRK0dEbV2dKm9K6qASQGzni+zWLAcW5fMzFuPLQfi9pt3btBbposR6SQadersE4gkCFe8cCThMX3Cl77n9glXolFFIk6dXjDTFYkLYKLO2xf1rj1wqNP9MyKJauoX5nQHRkfDseNyCI4AAMDhc86pqWfuoPY+cwj1D4ea9ncecH6sOyjc0wk0vTSvJxzq/R7bl5tkd1AqCgQs1imUHdY05SR1jnNOrR0RL2jq7AmYYh1Nvdv2tHRo974Obdi5T42tndp3kKF0Y0LBA8Kk/l1Nhdlx23NCys1kKB3Sl3NO7V1RtbR3eSFPRC0dXWptjwU+8estHV3a32+955y487vPG05mUtD6hUqB3uXu0Kk7gOoJrALx4VX89vh1eetxgVbcubH13uX+AVeisCsQiAvDes4boM64Wvp/pj6199SY+Nz+wVz8r0HPZzqc0C7Q79eje1+ge73vufGfqe/n6D12KDjX3YFyYOfJQN0p8UFGd1jSHb70nN8TrkQH6ITpG8z0uWakb9dL/4AnFshE47psogl+bm997ujkKn2EgrH/bqFAQMGgKSMQUEbAlBE073vvejAQUCgQO35MKBg7zzsnGDRvX6D3msGAgvHX6rn2wD8j0THx1woFAj0/t//PCPXUkR6dzKP3T5sAAAyxjq5o3HxBiSeU3uUtd0QO7HrJCsW6bmJhUK5OP664Z3hY95xCJXmZKva5OyiVmZlyMjOUk5mhsqLkz+voivaZmynhnE1e+LStsTm2fX/ngH/wzvBCr975mbrnbgr3eRNdfPhUMCakYICwCUdXR1dUrR1daumIaH9Hl1ra40Kezoha22P7Wtu7+q53BzxxYU9Le28IdDj/2J8VCig7nKHscFA54QxlZ8a+j80JKyccVHZmhnLCQY0JZ/RZD2cE5JwUdS72FZUizsk5p2j39mjcspO3nni/c06RAfdJkbhzu4fBdC9HnVMk7jr9a+k+t7veSE8o0Xuui/scPZ8p0efo/5l6zvPqdInrTAf9u8gShXbxYZikBIFN7NfsaAuYegOM+DCjezk+EIlbDgUDygrFhR39QpeM4IHhSnfokjhMif8ZvdfsW0/8vsThSm84FPvqDv6QmgiOAABpzTmn5v1dvXMG7evfFdQbDjW2HtgdJHV3B8XCn+NKcnoCoNJ+E0rThTJyhTMCKs3PUml+8kPpIlGn5v2dBwybS9Tp9OauVlW3NqqhtSPhkEMp9hee/KxQn2Cpt5PpwG3dnU6ZGQylSwddkagX3MR17bTHde90HDzU6X9O97aB7sdEwsGAsjODyg71hjfZ4QxNyM/qs56TGdSY7hAoHFROZsYB69nhoPeVQWB6lCQKsbpDJueFVT3rcQGXiwupYuu9gVX8/j6hXbR7PbnQLj78OyA063dufBjWE/hF40K7+M81QGjXfR3nFOseOUi3Sncgkig4SbZb5YBj4rpVgt41A/w+wAhGcAQAGJU6uqLa3dLeM4H0AUPG4iaUTjQnTmZGoGdY2LHjcnXqtOJ+YZDXHZQbVojuoLQUDFgszMkJJ32Oc04tHRE19AmYOvpNGB77vnNvm9Zu36vG1g61HGSITnY4mLirKS5w6v92upxwkBBzmHTPw9M7NCvS09HT2t6VcL077GmJC4X6r7cfZO6u/oIB6+3eCQdjYU84Q8U5YZUXZScMb3Iy40KfUN/17FAs+Aln8KxLZd3D4QjqABwugiMAQMpwzqm5reuAOYMOnDuoTQ0DdAeNzQn3zBU0bVpO7wTS3RNK58X25dEdhGFgZsrNzFBuZobKxyZ/XntXpDdoipsgvPuNdHvi5m+qa9ivhtYONR1kKF0oaL1vous3nK5Pp1NOb+BUMCY0qv5FvP88PC0HdOkM0LUz4Dw8saBnf+fhzcOTaChW/piQJhZk9XbpZMaFQHEhT3fw0xsCxb5nZgR4fgEAhgzBEQDAd52RqHbv60gwZ9CBE0on+lf32Bu7YqHPlOJsnTKtSCW5WX0nlM7LVHFOJv9ijpSUmRHU+Pygxh/mULqm/Yees6mhtVObdu1Tw+bYtoHeRGMmFYwJ9QmbYvMzeROHDzB/01D8noufh6e1faDJlRMM1Tqgi6dv0HO48/B0hzjZod4wpzgn7HX19B+q1Xe9J/TpvkY4qKyM4KgK4wAAoxPBEQBgWDjntLe9K2E3UP9OoT2tHQk7I4qyQz3Dwk6ZmtNnqFjvcpbys+gOAvoLBkxjc2JzISXLOad97V193j430Nvptje3ac22ZjW0dh60yyYnHEw4P9OYcFD7OyK9b9TqF+rErx/Oa5W75+HJCfcdijWxIBTXpTNw105OZobGhGLfu7uBut/oAwBAOiI4AgAclq5IVLtbOrz5gdp65hCKnzOoOxxq60zQHRQM9AQ/5WOz9fYpRX3mDOoOhMbl0h0EHG1mpryskPKyQiofm530eW2d8UPpDnw7XWNrb3dT7Z5W7WnpUGtHpM9QrO5AZ1xuWNmZ2T3dOgebjyfROnOOAQAwtAiOAAA9XQYHdgf17RLata9du1sSdwcVZod65gh6++S+YVB8l1DBmBDdQcAokxUKakJBUBMKkh9KBwAAUgPBEQCkiWjUaUP9PtVsbtTqbc3a0dx3PqFEQ01CQYuFQflZKivKVuXkogNeMV+an6VxuWFeCQ4AAACMQgRHADBK1e9tV01to2pqG1RT26jltU3a294lScrNzNCEgthbxConF/aZQDp+UunCbLqDAAAAgHRGcAQAo0BbZ0SrtjapenOjFxY1qq5hvyQpI2CaNTFPF1Ueo8ryIlVMLtS04hze5AMAAADgkAiOACDFOOf0xq6WnoCoprZRa7Y1qzMSm3hoUuEYVZQX6sozpqqivFAnTSpQVohhZAAAAAAOH8ERAIxwDS0dqqlrVE1cN1HT/k5Jsddczykr1KfecawqygtVMblQpXlMTgsAAABgaBAcAcAI0tEV1ZptzT0BUfXmBr25u1WSFDDp+PF5uvCkCaqcXKiK8iJNL81VkCFnAAAAAIYJwREA+MQ5p7qG/aqu7e4matDKrc3q6IpKkkrzMlVRXqj5p0xWRXmh5pQVKCeTxzYAAACAo4e/gQDAUdLc1qnltU09bzmrqW3Urn0dkqSsUEAnTyromZeoorxQEwuyeKMZAAAAAF8RHAHAMOiKRLV2x95YQLS5UdW1jdpYv08uNn+1jivJ0TkzS3tCopkT8hQKBvwtGgAAAAD6ITgCgCGwrWl/z+TV1ZsbtWJLk/Z3RiRJY3PCqigv1EVzj1HF5ELNKStUwZiQzxUDAAAAwKERHAHAYWpp79KKLU09k1fX1DZqR3O7JCkcDGj2MflaMK9cFeWFqiwvUvnYMQw5AwAAAJCSCI4A4CCiUacN9fu84WYNqt7cqHU79irqDTmbUpyt048tjg05m1ykEybmKTMj6G/RAAAAADBECI4AIE793vY+nUTL65q0r71LkpSflaG55YV694kTVFleqLnlhRqbE/a5YgAAAAAYPgRHANJWW2dEq7Y2qdqbvLpmc6O2NO6XJGUETLMm5uniykleN1GhphXnKBBgyBkAAACA9EFwBCAtOOf0xq4WVXsTWNfUNmrNtmZ1eWPOJhWOUcXkQl115lRVlBfqpEkFygox5AwAAABAeiM4AjAqNbR0xIaceSHRstpGNe3vlCTlhIOaW16oa886tqebqDQvy+eKAQAAAGDkITgCkPI6uqJava1ZNd68RDW1jXpzd6skKWDS8ePz9N6TJ8RCovIiTS/NVZAhZwAAAABwSARHAFKKc051Dfv1WlxItGprszq6opKk0rxMVU4u1PxTJquivFBzygqUk8mjDgAAAACOBH+bAjCiNbd1apk3cXV3ULS7pUOSlBUKaM6kQl15xlSvm6hQEwuyZEY3EQAAAAAMBYIjACNGVySq17fv7QmIamobtbF+n1xs/mpNL83VubNKe0KimRPyFAoG/C0aAAAAAEYxgiMAvnDOaVtTW29ItLlRy7c0qq0zNuRsbE5YleWFumjuMaqYXKg5ZYUqGBPyuWoAAAAASC8ERwCOipb2Li2va/KCogZVb27Uzr3tkqRwMKATJ+XrinmxeYkqy4tUPnYMQ84AAAAAwGcERwCGXCTqtGHnPtXUxiawrt7cqHU79irqDTmbWpytM44rjg05m1ykEybmKTMj6G/RAAAAAIADEBwBGLSde9v6TF69vK5J+9q7JEn5WRmqmFykd584QZXlhZpbXqixOWGfKwYAAAAAJIPgCMBhaeuMaOWW2JCzam9uoi2N+yVJGQHTCRPzdXHlJK+bqFDTinMUCDDkDAAAAABSUVLBkZldIOleSUFJP3HOfbPf/imSHpBUImmPpI865+rMrELSjyTlS4pIutM5t7jfufdJ+qRzLneQnwXAEItGnd7Y3dLTTVRd26DXt+1VlzfmbFLhGFVMLtRVZ05VRXmhTppUoKwQQ84AAAAAYLQ4ZHBkZkFJP5R0vqQ6Sa+Y2ZPOudVxh31X0oPOuV+Y2XmS7pL0MUmtkj7unFtvZsdIetXMnnPONXrXrpJUNKSfCMAR29PSoWVeJ1H15gYtq21Uc1tsyFluZobmlBXo2rOO7ekmKs3L8rliAAAAAMBwSqbjaJ6kDc65TZJkZoskXSQpPjiaLelGb/lFSY9LknNuXfcBzrmtZrZTsa6kRi+Q+o6kf5V08eA+BoDD1d4V0Zpte1WzuSE25Ky2UW/tbpUkBUw6fnye3jdnYiwkKi/S9NJcBRlyBgAAAABpJZngaJKk2rj1Okmn9jtmmaRLFBvOdrGkPDMrds7t7j7AzOZJCkva6G26TtKTzrltvHIbGF7OOdXu2a/q2gZVe8POVm9tVkckKkkqzctU5eRCLThlsirKCzWnrEA5mUyBBgAAAADpbqj+ZniTpP8ysyslvSRpi2JzGkmSzGyipF9K+oRzLuoNW/uwpHMOdWEzu1bStZI0efLkISoXGN2a9ndqeV1s4urq2kYtq23U7pYOSVJWKKA5kwp1pTcvUUV5oSYWZIkAFwAAAADQXzLB0RZJ5XHrZd62Hs65rYp1HMnMciVdGjePUb6kpyXd5pz7u3dKpaTpkjZ4f1nNNrMNzrnp/X+4c+5+SfdLUlVVlUv6kwFpoisS1evb98Ymr97cqJraBm2sb+nZP700V+fOKu0JiWZOyFMoGPCxYgAAAABAqkgmOHpF0gwzm6ZYYLRAsXmJepjZOEl7nHNRSbcq9oY1mVlY0hLFJs5+tPt459zTkibEnb8vUWgE4EDRqNPzr+/UP9/YrZraRq3Y0qS2ztiQs+KcsCrKC/WhikmqmFyoOWWFKhgT8rliAAAAAECqOmRw5JzrMrPrJD0nKSjpAefcKjO7Q9JS59yTig05u8vMnGJD1T7nnX65pLMkFXvD2CTpSudczZB+CiCN/OjPG/Wd59YqHAzoxEn5umJebF6iyvIilY8dw5AzAAAAAMCQMedSZ/RXVVWVW7p0qd9lAL6p3tygy378si44aYK+f/lcZWYE/S4JAAAAAJDizOxV51xVon1MdAKkiH3tXVq4qEYT8rP0jYtPJjQCAAAAAAw73rcNpIjbn1ipuoZWLf706cxbBAAAAAA4Kug4AlLAEzVb9NvXtujz583QKVPH+l0OAAAAACBNEBwBI1ztnlZ9ZclKvX1KkT5/Hi8fBAAAAAAcPQRHwAjWFYnqC4trJEn3zK9QRpDfsgAAAACAo4c5joAR7AcvbNCrbzXo3gUVKh+b7Xc5AAAAAIA0Q/sCMEK98uYe/eCF9bqkcpIuqpjkdzkAAAAAgDREcASMQE37O/WFRTUqK8rW1y460e9yAAAAAABpiqFqwAjjnNNtS1Zoe3ObHv3M6crLCvldEgAAAAAgTdFxBIwwj722RU8t36Yb3jVDlZOL/C4HAAAAAJDGCI6AEeTNXS366hMrNW/aWH32nOl+lwMAAAAASHMER8AI0RmJauGiagUDpnvmVygYML9LAgAAAACkOeY4AkaIu/+wTsvqmvTfH3mbjikc43c5AAAAAADQcQSMBC9v3K0f/Xmj5leV670nT/S7HAAAAAAAJBEcAb5rbO3QDYtrNK04R7d/YLbf5QAAAAAA0IPgCPCRc063PLZCu1vade+CSuVkMnoUAAAAADByEBwBPlr8Sq2eXbVdN717pk4uK/C7HAAAAAAA+iA4AnyyYec+fe13q3Xm9GJ96h3H+l0OAAAAAAAHIDgCfNDeFdHCRdXKCgX0/csrFAiY3yUBAAAAAHAAJlQBfPC9/12nVVub9T8fr9L4/Cy/ywEAAAAAICE6joCj7C/r63X/S5v00dMm6/zZ4/0uBwAAAACAAREcAUfR7n3tuvHhZZpRmqvb3jvb73IAAAAAADgohqoBR4lzTjc/tlxNrZ168JPzNCYc9LskAAAAAAAOio4j4Cj51d/f0h/X7NQtF87SCRPz/S4HAAAAAIBDIjgCjoK12/fq60+v0TkzS3TVmVP9LgcAAAAAgKQQHAHDrK0zousfqlZeVoa+c9lcmZnfJQEAAAAAkBTmOAKG2Td//7rW7tirn115ikryMv0uBwAAAACApNFxBAyjF17foZ//7U1ddeZUnTur1O9yAAAAAAA4LARHwDDZubdNX3xkuWZNyNPNF8zyuxwAAAAAAA4bQ9WAYRCNOn3xkeXa196lh649TVmhoN8lAQAAAABw2Og4AobBz/72pv68rl5fef9sHT8+z+9yAAAAAAA4IgRHwBBbtbVJ3/r963rXCeP10VMn+10OAAAAAABHjOAIGEL7OyJauKhGhdkhffuyOTIzv0sCAAAAAOCIMccRMIS+/vRqbdi5T7+6+lSNzQn7XQ4AAAAAAINCxxEwRJ5btV2//sdmffqsY/UvM8b5XQ4AAAAAAINGcAQMge1Nbbr5seU6aVK+/u3dM/0uBwAAAACAIUFwBAxSNOp048M1au+M6t4FlQpn8NsKAAAAADA6MMcRMEj3/2WT/rZxt7516ck6riTX73IAAAAAABgytEYAg7C8rlHffW6tLjxpgi6vKve7HAAAAAAAhhTBEXCEWtq7tHBRjUryMnXXJSfLzPwuCQAAAACAIcVQNeAIfe13q/Tm7hY99KnTVJgd9rscAAAAAACGHB1HwBF4evk2Pby0Tv/vnON02rHFfpcDAAAAAMCwIDgCDtOWxv269bfLNbe8UF941/F+lwMAAAAAwLBJKjgyswvMbK2ZbTCzWxLsn2Jmz5vZcjP7k5mVedsrzOxlM1vl7Zsfd86vvWuuNLMHzCw0dB8LGB6RqNMNi2oUiTrdt6BCoSDZKwAAAABg9Drk33rNLCjph5IulDRb0hVmNrvfYd+V9KBzbo6kOyTd5W1vlfRx59yJki6QdI+ZFXr7fi1plqSTJY2RdM3gPgow/P77xQ3655t7dMdFJ2lKcY7f5QAAAAAAMKySaZeYJ2mDc26Tc65D0iJJF/U7ZrakF7zlF7v3O+fWOefWe8tbJe2UVOKtP+M8kv4pqWywHwYYTq9tbtA9z6/XB+ceo0veNsnvcgAAAAAAGHbJBEeTJNXGrdd52+Itk3SJt3yxpDwz6zNjsJnNkxSWtLHf9pCkj0l6NtEPN7NrzWypmS2tr69Polxg6O1t69TCRdWaWJClr198kszM75IAAAAAABh2QzVBy02SzjazaklnS9oiKdK908wmSvqlpKucc9F+5/63pJecc39JdGHn3P3OuSrnXFVJSckQlQscntufWKUtDft1z/wK5WcxHRcAAAAAID1kJHHMFknlcetl3rYe3jC0SyTJzHIlXeqca/TW8yU9Lek259zf488zs68qNnTt00dYPzDsHq/eoiXVW/SFd81Q1dSxfpcDAAAAAMBRk0zH0SuSZpjZNDMLS1og6cn4A8xsnJl1X+tWSQ9428OSlig2cfaj/c65RtJ7JF2RoAsJGBE2727VVx5fqaopRbru3Ol+lwMAAAAAwFF1yODIOdcl6TpJz0laI+lh59wqM7vDzD7oHXaOpLVmtk7SeEl3etsvl3SWpCvNrMb7qvD2/dg79mVv++1D9aGAodAVieoLi6tlJt2zoEIZwaEa2QkAAAAAQGpIZqianHPPSHqm37bb45YflfRogvN+JelXA1wzqZ8N+OW+Fzbotc2Nuu+KSpUVZftdDgAAAAAARx0tFEAC/3xjj/7rhfW69G1l+uDcY/wuBwAAAAAAXxAcAf007e/UDYtrVD42W1+76ES/ywEAAAAAwDcMFwPiOOf05SUrtKO5TY9+9gzlZvJbBAAAAACQvug4AuI8+mqdnl6+TTecf7wqygv9LgcAAAAAAF8RHAGeN3a16KtPrtJpx47VZ84+zu9yAAAAAADwHcERIKmjK6qFi6oVCgZ09/wKBQPmd0kAAAAAAPiOCVwASXf/cZ2W1zXpRx95myYWjPG7HAAAAAAARgQ6jpD2/rZxl3785426Yl65Ljx5ot/lAAAAAAAwYhAcIa01tHToxsXLNG1cjv79/bP9LgcAAAAAgBGF4AhpyzmnW367XLtb2nXfgkplhxm5CQAAAABAPIIjpK2H/lmr51bt0JfeM0snTSrwuxwAAAAAAEYcgiOkpQ079+mOp1bpHTPG6ep/meZ3OQAAAAAAjEgER0g77V0RXf9QtbLDGfreh+cqEDC/SwIAAAAAYERiUhekne88u1artzXrJx+vUml+lt/lAAAAAAAwYtFxhLTy0rp6/eSvb+hjp03Ru2aP97scAAAAAABGNIIjpI1d+9p148PLNKM0V7e97wS/ywEAAAAAYMRjqBrSgnNOX3p0uZrbOvXLq+cpKxT0uyQAAAAAAEY8Oo6QFh58+S298PpOffnCWTphYr7f5QAAAAAAkBIIjjDqrd2+V3c+s0bnzizRJ86Y6nc5AAAAAACkDIIjjGptnRFd/1C18rNC+s6H58rM/C4JAAAAAICUwRxHGNXuemaN1u7Yq59fdYrG5Wb6XQ4AAAAAACmFjiOMWi+8vkO/ePktffLMaTpnZqnf5QAAAAAAkHIIjjAq7Wxu002PLNcJE/N184Uz/S4HAAAAAICURHCEUScadfq3R5aptaNL9y2oUGZG0O+SAAAAAABISQRHGHUe+L839Jf1u/SV983WjPF5fpcDAAAAAEDKIjjCqLJyS5O+9ezrOn/2eH3k1Ml+lwMAAAAAQEojOMKosb8jooWLqjU2J6xvXTpHZuZ3SQAAAAAApLQMvwsAhsp/Pr1am3a16FdXn6qxOWG/ywEAAAAAIOXRcYRR4dmV2/Wbf2zWtWcdqzOnj/O7HAAAAAAARgWCI6S87U1tuuW3y3XypAL92/kz/S4HAAAAAIBRg+AIKS0SdbphcY3aO6O6d0GFwhnc0gAAAAAADBXmOEJKu/+lTXp50259+9I5OrYk1+9yAAAAAAAYVWjPQMpaVtuo7/3vWr3v5In6cFWZ3+UAAAAAADDqEBwhJbW0d2nhomqV5mXqGxefLDPzuyQAAAAAAEYdhqohJf3Hk6v01p5WLfrUaSrIDvldDgAAAAAAoxIdR0g5v1u2VY+8Wqfrzp2uU48t9rscAAAAAABGLYIjpJS6hlZ9eckKVU4u1PXvnOF3OQAAAAAAjGoER0gZkajTDYtr5Jx07/xKhYLcvgAAAAAADCfmOELK+OGLG/TKmw26e/5cTS7O9rscAAAAAABGPVo2kBJefatB9z6/Xh+qOEYXV5b5XQ4AAAAAAGmB4AgjXnNbpxYuqtbEgizd8aGT/C4HAAAAAIC0wVA1jHi3P75S25ra9PCnT1d+VsjvcgAAAAAASBtJdRyZ2QVmttbMNpjZLQn2TzGz581suZn9yczKvO0VZvayma3y9s2PO2eamf3Du+ZiMwsP3cfCaLGkuk6P12zVwnfO0NunFPldDgAAAAAAaeWQwZGZBSX9UNKFkmZLusLMZvc77LuSHnTOzZF0h6S7vO2tkj7unDtR0gWS7jGzQm/ftyTd7ZybLqlB0tWD/CwYZTbvbtW/P75Kp0wt0ufOne53OQAAAAAApJ1kOo7mSdrgnNvknOuQtEjSRf2OmS3pBW/5xe79zrl1zrn13vJWSTsllZiZSTpP0qPeOb+Q9KFBfA6MMp2RqK5fVC0z6e75FQoGzO+SAAAAAABIO8kER5Mk1cat13nb4i2TdIm3fLGkPDMrjj/AzOZJCkvaKKlYUqNzrusg10Qau+/59aqpbdRdl5yssqJsv8sBAAAAACAtDdVb1W6SdLaZVUs6W9IWSZHunWY2UdIvJV3lnIsezoXN7FozW2pmS+vr64eoXIxk/9i0Wz98cYMue3uZ3j/nGL/LAQAAAAAgbSUTHG2RVB63XuZt6+Gc2+qcu8Q5VynpNm9boySZWb6kpyXd5pz7u3fKbkmFZpYx0DXjrn2/c67KOVdVUlKS3KdCympq7dQNi2s0eWy2/uODJ/pdDgAAAAAAaS2Z4OgVSTO8t6CFJS2Q9GT8AWY2zsy6r3WrpAe87WFJSxSbOLt7PiM555xicyFd5m36hKQnBvNBkPqcc/rykhXaubdd9y6oVG5mxqFPAgAAAAAAw+aQwZE3D9F1kp6TtEbSw865VWZ2h5l90DvsHElrzWydpPGS7vS2Xy7pLElXmlmN91Xh7btZ0o1mtkGxOY9+OkSfCSnqkVfr9PSKbbrx3cdrbnmh3+UAAAAAAJD2LNb8kxqqqqrc0qVL/S4Dw2BT/T69/wd/1dyyQv3qmlN5ixoAAAAAAEeJmb3qnKtKtG+oJscGjlhHV1QLF9UonBHQ9+fPJTQCAAAAAGCEYBIZ+O57f1irFVua9OOPvl0TC8b4XQ4AAAAAAPDQcQRf/d+GXbr/pU26Yt5kXXDSBL/LAQAAAAAAcQiO4Js9LR268eEaHTsuR//+/hP8LgcAAAAAAPTDUDX4wjmnmx9broaWTv30E6coO8ytCAAAAADASEPHEXzxm39u1h9W79CXLpipkyYV+F0OAAAAAABIgOAIR936HXv1n0+t1jtmjNMnz5zmdzkAAAAAAGAABEc4qtq7Irp+UY1ywhn63uVzFQiY3yUBAAAAAIABMLEMjqpvP7tWa7Y166efqFJpXpbf5QAAAAAAgIOg4whHzZ/W7tRP//qGPnH6FL3zhPF+lwMAAAAAAA6B4AhHxa597brpkeWaOT5Pt773BL/LAQAAAAAASWCoGoadc05ffGSZmts69etrTlVWKOh3SQAAAAAAIAl0HGHY/eJvb+rFtfW67b0naOaEPL/LAQAAAAAASSI4wrB6fXuzvvH713XerFJ9/PQpfpcDAAAAAAAOA8ERhk1bZ0TXP1St/KyQvn3ZHJmZ3yUBAAAAAIDDwBxHGDbfeGaN1u3Yp198cp7G5Wb6XQ4AAAAAADhMdBxhWPxx9Q49+PJbuuZfpuns40v8LgcAAAAAABwBgiMMuZ3NbfrSY8s1e2K+vnjBTL/LAQAAAAAAR4jgCEMqGnX6t0eWqbWjS/ddUaHMjKDfJQEAAAAAgCNEcIQh9dO/vqG/rN+l299/oqaX5vldDgAAAAAAGASCIwyZlVua9O3nXtd7ThyvK+aV+10OAAAAAAAYJIIjDInWji5dv6haY3PC+uYlc2RmfpcEAAAAAAAGKcPvAjA6/OdTq/XGrhb9+upTVZQT9rscAAAAAAAwBOg4wqD9fsU2PfTPWn36rON0xvRxfpcDAAAAAACGCMERBmVb037d8tsVmlNWoBvPP97vcgAAAAAAwBAiOMIRi0Sdblhco85IVPcuqFQ4g9sJAAAAAIDRhDmOcMR+/OeN+vumPfrOZXM0bVyO3+UAAAAAAIAhRosIjkhNbaPu/sM6vW/ORF329jK/ywEAAAAAAMOA4AiHbV97lxYuqtb4/Cx940Mny8z8LgkAAAAAAAwDhqrhsH31iVWq3dOqRdeeroLskN/lAAAAAACAYULHEQ7Lk8u26rHX6nTdudM1b9pYv8sBAAAAAADDiOAISavd06rblqzQ2yYX6vp3zvC7HAAAAAAAMMwIjpCUrkhUNyyukXPSvQsqlRHk1gEAAAAAYLRjjiMk5YcvbtTStxp0z/wKlY/N9rscAAAAAABwFNA2gkNa+uYe3fv8Ol1cOUkfqpzkdzkAAAAAAOAoITjCQTW3dWrhohpNKhqjOy460e9yAAAAAADAUcRQNQzIOaevLFmp7c1teuQzpysvK+R3SQAAAAAA4Cii4wgDWlK9RU8u26ovvHOG3ja5yO9yAAAAAADAUUZwhITe2t2if398peZNHav/d+50v8sBAAAAAAA+IDjCATojUS1cVKNgwHT3ggoFA+Z3SQAAAAAAwAfMcYQD3PvH9aqpbdR//WulJhWO8bscAAAAAADgEzqO0MffN+3WD/+0QZdXlen9c47xuxwAAAAAAOCjpIIjM7vAzNaa2QYzuyXB/ilm9ryZLTezP5lZWdy+Z82s0cye6nfOO83sNTOrMbO/mhkT6fissbVDNyyu0dTiHH31Ayf6XQ4AAAAAAPDZIYMjMwtK+qGkCyXNlnSFmc3ud9h3JT3onJsj6Q5Jd8Xt+46kjyW49I8kfcQ5VyHpN5K+ctjVY8g45/TlJStUv7dd9y6oUE4moxgBAAAAAEh3yXQczZO0wTm3yTnXIWmRpIv6HTNb0gve8ovx+51zz0vam+C6TlK+t1wgaeth1I0h9vDSWj2zYrtues9MzSkr9LscAAAAAAAwAiTTVjJJUm3cep2kU/sds0zSJZLulXSxpDwzK3bO7T7Ida+R9IyZ7ZfULOm0pKvGkNpYv0//8eRqnXFcsa59x7F+lwMAAAAAAEaIoZoc+yZJZ5tZtaSzJW2RFDnEOTdIeq9zrkzSzyR9P9FBZnatmS01s6X19fVDVC66dXRFtXBRtTJDAX3/8goFAuZ3SQAAAAAAYIRIJjjaIqk8br3M29bDObfVOXeJc65S0m3etsaBLmhmJZLmOuf+4W1aLOmMRMc65+53zlU556pKSkqSKBeH43v/u1YrtzTrW5fO0YSCLL/LAQAAAAAAI0gywdErkmaY2TQzC0taIOnJ+APMbJyZdV/rVkkPHOKaDZIKzOx4b/18SWuSLxtD4a/rd+n/e2mTPnLqZL3nxAl+lwMAAAAAAEaYQ85x5JzrMrPrJD0nKSjpAefcKjO7Q9JS59yTks6RdJeZOUkvSfpc9/lm9hdJsyTlmlmdpKudc8+Z2ackPWZmUcWCpE8O8WfDQexp6dCND9doemmuvvK+/i/JAwAAAAAAkMw553cNSauqqnJLly71u4yU55zTpx58VS+tq9eSz52hE48p8LskAAAAAADgEzN71TlXlWjfUE2OjRTyq39s1h/X7NDNF84iNAIAAAAAAAMiOEoz63fs1defWq2zji/RVWdM9bscAAAAAAAwghEcpZG2zog+/1C1cjMz9N0Pz1EgYH6XBAAAAAAARrBDTo6N0eNbz76u17fv1c+uPEWleVl+lwMAAAAAAEY4Oo7SxItrd+pn//emrjxjqs6dVep3OQAAAAAAIAUQHKWB+r3t+uIjyzRzfJ5uuXCW3+UAAAAAAIAUwVC1Uc45py8+ukx727r062tOU1Yo6HdJAAAAAAAgRdBxNMr9/G9v6k9r63Xb+07QzAl5fpcDAAAAAABSCMHRKLZmW7PueuZ1vXNWqT522hS/ywEAAAAAACmG4GiU2t8R0fUPVasgO6RvXzZHZuZ3SQAAAAAAIMUwx9Eodeczq7V+5z798up5Ks7N9LscAAAAAACQgug4GoX+sHqHfvX3zfrUO6bpHTNK/C4HAAAAAACkKIKjUWZHc5u+9OgynXhMvm56z0y/ywEAAAAAACmM4GgUiUadbny4Rm2dUd13RaUyM4J+lwQAAAAAAFIYwdEo8pO/btL/bdit2z8wW8eV5PpdDgAAAAAASHEER6PEiromfee5tbrgxAlacEq53+UAAAAAAIBRgOBoFGjt6NLCRdUqzsnUNy89WWbmd0kAAAAAAGAUyPC7AAzeHb9brTd2t+g315ymwuyw3+UAAAAAAIBRgo6jFPfMim1a9EqtPnv2cTr9uGK/ywEAAAAAAKMIwVEK29q4X7c8tlxzywp0w/nH+10OAAAAAAAYZQiOUlQk6nTD4hpFok73LqhUKMh/SgAAAAAAMLSY4yhF/fjPG/WPN/boux+eq6njcvwuBwAAAAAAjEK0qaSg6s0N+v4f1ukDc4/RpW+b5Hc5AAAAAABglCI4SjH72ru0cFGNJuRn6esfOklm5ndJAAAAAABglGKoWoq5/YmVqmto1eJPn66CMSG/ywEAAAAAAKMYHUcp5ImaLfrta1v0+fNm6JSpY/0uBwAAAAAAjHIERymidk+rvrJkpd4+pUifP2+63+UAAAAAAIA0QHCUAroiUX1hcY0k6Z75FcoI8p8NAAAAAAAMP+Y4SgE/eGGDXn2rQfcuqFD52Gy/ywEAAAAAAGmC1pUR7pU39+gHL6zXJZWTdFHFJL/LAQAAAAAAaYTgaARr2t+pLyyqUVlRtr520Yl+lwMAAAAAANIMQ9VGKOecbluyQtub2/ToZ05XXlbI75IAAAAAAECaoeNohHrstS16avk23Xj+8aqcXOR3OQAAAAAAIA0RHI1Ab+5q0VefWKlTp43VZ84+zu9yAAAAAABAmiI4GmE6I1EtXFStYMB09/wKBQPmd0kAAAAAACBNMcfRCHP3H9ZpWV2T/vsjb9MxhWP8LgcAAAAAAKQxOo5GkJc37taP/rxR86vK9d6TJ/pdDgAAAAAASHMERyNEY2uHblhco2nFObr9A7P9LgcAAAAAAIDgaCRwzumWx1Zod0u77l1QqZxMRhACAAAAAAD/ERyNAItfqdWzq7brpnfP1MllBX6XAwAAAAAAIIngyHcbdu7T1363WmdOL9an3nGs3+UAAAAAAAD0IDjyUXtXRAsXVSsrFND3L69QIGB+lwQAAAAAANAjqeDIzC4ws7VmtsHMbkmwf4qZPW9my83sT2ZWFrfvWTNrNLOn+p1jZnanma0zszVmdv3gP05q+d7/rtOqrc369mVzNT4/y+9yAAAAAAAA+jhkcGRmQUk/lHShpNmSrjCz/q/9+q6kB51zcyTdIemuuH3fkfSxBJe+UlK5pFnOuRMkLTrs6lPYX9bX6/6XNumjp03W+bPH+10OAAAAAADAAZLpOJonaYNzbpNzrkOxgOeifsfMlvSCt/xi/H7n3POS9ia47mcl3eGci3rH7TzM2lPW7n3tuvHhZZpRmqvb3ts/gwMAAAAAABgZkgmOJkmqjVuv87bFWybpEm/5Ykl5ZlZ8iOseJ2m+mS01s9+b2YxkCk51zjnd/NhyNbV26r4rKjUmHPS7JAAAAAAAgISGanLsmySdbWbVks6WtEVS5BDnZEpqc85VSfofSQ8kOsjMrvXCpaX19fVDVK5//rZxt/64ZqduuXCWTpiY73c5AAAAAAAAA8pI4pgtis1F1K3M29bDObdVXseRmeVKutQ513iI69ZJ+q23vETSzxId5Jy7X9L9klRVVeWSqHdEO3P6OP3mU6fq9GMP1ZAFAAAAAADgr2Q6jl6RNMPMpplZWNICSU/GH2Bm48ys+1q3aoDuoX4el3Sut3y2pHVJVTwKnHHcOJmZ32UAAAAAAAAc1CGDI+dcl6TrJD0naY2kh51zq8zsDjP7oHfYOZLWmtk6SeMl3dl9vpn9RdIjkt5pZnVm9h5v1zclXWpmKxR7C9s1Q/SZAAAAAAAAMATMudQZ/VVVVeWWLl3qdxkAAAAAAACjhpm96s1BfYChmhwbAAAAAAAAowzBEQAAAAAAABIiOAIAAAAAAEBCBEcAAAAAAABIiOAIAAAAAAAACREcAQAAAAAAICGCIwAAAAAAACREcAQAAAAAAICEzDnndw1JM7N6SW/5XccQGSdpl99FIGVx/2CwuIcwWNxDGCzuIQwW9xAGi3sIgzWa7qEpzrmSRDtSKjgaTcxsqXOuyu86kJq4fzBY3EMYLO4hDBb3EAaLewiDxT2EwUqXe4ihagAAAAAAAEiI4AgAAAAAAAAJERz5536/C0BK4/7BYHEPYbC4hzBY3EMYLO4hDBb3EAYrLe4h5jgCAAAAAABAQnQcAQAAAAAAICGCo2FmZg+Y2U4zWxm3bayZ/cHM1nvfi/ysESPbAPfQf5jZFjOr8b7e62eNGNnMrNzMXjSz1Wa2yswWett5FiEpB7mHeBYhKWaWZWb/NLNl3j30NW/7NDP7h5ltMLPFZhb2u1aMTAe5h35uZm/EPYcqfC4VI5iZBc2s2sye8tZ5BuGwJLiH0uIZRHA0/H4u6YJ+226R9Lxzboak5711YCA/14H3kCTd7Zyr8L6eOco1IbV0Sfo359xsSadJ+pyZzRbPIiRvoHtI4lmE5LRLOs85N1dShaQLzOw0Sd9S7B6aLqlB0tX+lYgRbqB7SJK+GPccqvGrQKSEhZLWxK3zDMLh6n8PSWnwDCI4GmbOuZck7em3+SJJv/CWfyHpQ0ezJqSWAe4hIGnOuW3Oude85b2K/c9ukngWIUkHuYeApLiYfd5qyPtyks6T9Ki3necQBnSQewhIipmVSXqfpJ946yaeQTgM/e+hdEJw5I/xzrlt3vJ2SeP9LAYp6zozW+4NZWOIEZJiZlMlVUr6h3gW4Qj0u4cknkVIktfeXyNpp6Q/SNooqdE51+UdUicCSRxE/3vIOdf9HLrTew7dbWaZ/lWIEe4eSV+SFPXWi8UzCIfnHvW9h7qN+mcQwZHPXOy1dvxrCQ7XjyQdp1ir9jZJ3/O1GqQEM8uV9JikLzjnmuP38SxCMhLcQzyLkDTnXMQ5VyGpTNI8SbP8rQippv89ZGYnSbpVsXvpFEljJd3sX4UYqczs/ZJ2Oude9bsWpKaD3ENp8QwiOPLHDjObKEne950+14MU45zb4f3hKSrpfxT7AzgwIDMLKfYX/l87537rbeZZhKQluod4FuFIOOcaJb0o6XRJhWaW4e0qk7TFr7qQOuLuoQu8obTOOdcu6WfiOYTEzpT0QTN7U9IixYao3SueQUjeAfeQmf0qXZ5BBEf+eFLSJ7zlT0h6wsdakIK6/7LvuVjSyoGOBbwx/D+VtMY59/24XTyLkJSB7iGeRUiWmZWYWaG3PEbS+YrNlfWipMu8w3gOYUAD3EOvx/0DiCk2Pw3PIRzAOXerc67MOTdV0gJJLzjnPiKeQUjSAPfQR9PlGZRx6EMwGGb2kKRzJI0zszpJX5X0TUkPm9nVkt6SdLl/FWKkG+AeOsd71aOT9KakT/tVH1LCmZI+JmmFNzeEJH1ZPIuQvIHuoSt4FiFJEyX9wsyCiv3D5cPOuafMbLWkRWb2dUnVigWUQCID3UMvmFmJJJNUI+kzPtaI1HOzeAZhcH6dDs8gi01rAQAAAAAAAPTFUDUAAAAAAAAkRHAEAAAAAACAhAiOAAAAAAAAkBDBEQAAAAAAABIiOAIAAAAAAEBCBEcAAAAAAABIiOAIAAAAAAAACREcAQAAAAAAIKH/H5NvLNaESzbIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scorel = []\n",
    "for i in range(10,50,5):\n",
    "    rfc = RandomForestClassifier(n_estimators=110,\n",
    "                                 n_jobs=-1,\n",
    "                                 random_state=0,\n",
    "                                 max_depth=i)\n",
    "    score = cross_val_score(rfc,Train_X, Train_Y,cv=6,n_jobs=-1).mean()#交叉验证评分\n",
    "    scorel.append(score)\n",
    "print(max(scorel),(scorel.index(max(scorel)))*5+10)#打印出准确度最大的参数\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(10,50,5),scorel)#画出不同参数下的评分\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "03147ffd",
   "metadata": {},
   "source": [
    "<font size=4>max_depth=25时最大，后续变化不大，代入RandomForestClassifier中</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "40e46461",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8355686171803164\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time: 14.377227067947388\n"
     ]
    }
   ],
   "source": [
    "time_start = time.time() #开始计时\n",
    "\n",
    "clf = RandomForestClassifier(random_state=0,n_estimators=110,max_depth=25)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)\n",
    "\n",
    "time_end = time.time()#结束计时\n",
    "time_sum = time_end - time_start  # 计算的时间差为程序的执行时间，单位为秒\n",
    "print('time:',time_sum)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d2c90f7",
   "metadata": {},
   "source": [
    "<font size=4>max_depth默认值为不对最大深度做限制，而对最大深度做了限制后可以看到模型的运算时间减少了，说明模型复杂度下降了，但是准确度也降低了，说明修改后的模型不够复杂，max_depth应该越大越好，所以max_depth恢复默认值。</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "9a93a117",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.9255050150849501 6\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scorel = []\n",
    "for i in range(5,35,1):\n",
    "    rfc = RandomForestClassifier(n_estimators=110,\n",
    "                                 n_jobs=-1,\n",
    "                                 random_state=0,\n",
    "                                 max_features=i)\n",
    "    score = cross_val_score(rfc,Train_X, Train_Y,cv=6,n_jobs=-1).mean()#交叉验证评分\n",
    "    scorel.append(score)\n",
    "print(max(scorel),(scorel.index(max(scorel)))+5)#打印出准确度最大的参数\n",
    "plt.figure(figsize=[20,5])\n",
    "plt.plot(range(5,35,1),scorel)#画出不同参数下的评分\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "9bd2aa96",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "roc_auc:   0.8409513690653536\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time: 15.078556776046753\n"
     ]
    }
   ],
   "source": [
    "time_start = time.time() #开始计时\n",
    "\n",
    "clf = RandomForestClassifier(random_state=0,n_estimators=110,max_features=6)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "\n",
    "show_accuracy(Train_Y_test, Train_Y_pred)\n",
    "\n",
    "time_end = time.time()#结束计时\n",
    "time_sum = time_end - time_start  # 计算的时间差为程序的执行时间，单位为秒/s\n",
    "print('time:',time_sum)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "325db30d",
   "metadata": {},
   "source": [
    "<font size=4>可以看到和第一次优化的结果差不多，说明RandomForestClassifier随机森林模型的参数已经优化得差不多了。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "445cdd81",
   "metadata": {},
   "source": [
    "<font size=4>三个优化器最终结果汇总：</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4360bcd6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LogisticRegression_roc_auc:   0.8321720523213835\n",
      "MLPClassifier_roc_auc:   0.867942673643145\n",
      "RandomForestClassifier_roc_auc:   0.8409513690653536\n"
     ]
    }
   ],
   "source": [
    "#逻辑回归分类器\n",
    "clf = LogisticRegression(penalty='l1',max_iter=500,solver='saga',multi_class='multinomial',class_weight='balanced',random_state=0)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "print('LogisticRegression_roc_auc:  ',roc_auc_score(Train_Y_test, Train_Y_pred))\n",
    "\n",
    "#MLP多层感知机分类\n",
    "clf = MLPClassifier(solver='adam',activation='tanh',random_state=0,hidden_layer_sizes=(100,),batch_size='auto')\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "print('MLPClassifier_roc_auc:  ',roc_auc_score(Train_Y_test, Train_Y_pred))\n",
    "\n",
    "#随机森林分类器\n",
    "clf = RandomForestClassifier(random_state=0,n_estimators=110,max_features=6)\n",
    "clf.fit(Train_X_train, Train_Y_train)\n",
    "Train_Y_pred = clf.predict(Train_X_test)\n",
    "print('RandomForestClassifier_roc_auc:  ',roc_auc_score(Train_Y_test, Train_Y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "26d08ea0",
   "metadata": {},
   "source": [
    "<font size=4>有一个小问题，网站上给了随机森林模型作为标杆模型，说是效果最好，可是在我做出来的结果中MLPClassifier的roc_auc分数最高，不知道是哪里出了问题，也可能是因为测试集使用的是训练集的后50000个，没有使用网站给的80000个测试集。等哪天能登的上竞赛网站，上传结果做最后的比较吧。</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cd09e242",
   "metadata": {},
   "source": [
    "**<font size=5>预测测试集并写入文件</font>**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "e2963bdc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CaseId</th>\n",
       "      <th>Evaluation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>200001</td>\n",
       "      <td>0.000003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>200002</td>\n",
       "      <td>0.002600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>200003</td>\n",
       "      <td>0.208198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>200004</td>\n",
       "      <td>0.363145</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>200005</td>\n",
       "      <td>0.003026</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CaseId  Evaluation\n",
       "0  200001    0.000003\n",
       "1  200002    0.002600\n",
       "2  200003    0.208198\n",
       "3  200004    0.363145\n",
       "4  200005    0.003026"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test=pd.read_csv('report1_test.csv')#读取预测集\n",
    "test_X=test.drop('CaseId',axis=1)#舍弃序号\n",
    "\n",
    "clf = MLPClassifier(solver='adam',activation='tanh',random_state=0,hidden_layer_sizes=(100,),batch_size='auto')#使用MLP分类器\n",
    "clf.fit(Train_X_train, Train_Y_train)#训练模型\n",
    "pred_Y=clf.predict_proba(test_X)#预测双分类的概率\n",
    "pred_Y=pred_Y[:,1]#获得预测为1的概率\n",
    "pred_Y_S=pd.Series(pred_Y)#转换为Series格式\n",
    "pred_Y_S.rename('Evaluation',inplace=True)#对Series重命名\n",
    "CaseId=range(200001,280001)#生成新的序号\n",
    "CaseId_S=pd.Series(CaseId)#转换为Series格式\n",
    "CaseId_S.rename('CaseId',inplace=True)#对Series重命名\n",
    "result=pd.DataFrame#产生result DataFrame格式储存结果\n",
    "result=pd.concat([CaseId_S,pred_Y_S],axis=1)#将序号与概率拼接起来\n",
    "result.to_csv('report1_result.csv',index=None)#写入csv文件\n",
    "Result=pd.read_csv('report1_result.csv')#读取刚刚写入csv文件的结果\n",
    "Result.head()#打印前五项"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b7076a3",
   "metadata": {},
   "source": [
    "**<font size=5>总结</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2cad728d",
   "metadata": {},
   "source": [
    "<font size=4>这个问题是一个典型的二分类问题，在其中我尝试了sklearn库中3个常用的分类器，分别是LogisticRegression线性回归，MLPClassifier多层感知器分类器和RandomForestClassifier随机森林分类器，知道了函数中的参数发挥什么作用，并熟悉了如何使用GridSearchcv网格搜索和cross_val_score交叉验证评分来对这些参数进行优化，最终三个分类器在经过参数优化后准确度都有一定的提升。</font>"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
